package net.wanglu.www.zzz.rule;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.regex.Pattern;

import org.apache.commons.lang3.text.StrBuilder;

public abstract class Rule {

	public static final Integer Confused = 0;
	public static final Integer Applicable = 1;
	public static final Integer Inapplicable = 2;

	public static final Pattern Vb = Pattern.compile("VB|VBD|VBG|VBN|VBP|VBZ");
	public static final Pattern SingularVerb = Pattern
			.compile("\\bVBD\\b|\\bVBZ\\b|\\bMD\\b");
	public static final Pattern PluralVerb = Pattern
			.compile("\\bVB\\b|\\bVBD\\b|\\bVBP\\b|\\bMD\\b");
	public static final Pattern firstPerson = Pattern
			.compile("\\bI\\b|\\b[Ww]e\\b|\\b[Yy]ou\\b|\\[Tt]hey\\b");
	public static final Pattern thirdPerson = Pattern
			.compile("\\b[Ii]t\\b|\\b[Hh]e\\b|\\b[Ss]he\\b");
	public static final Pattern dtNonSingular = Pattern
			.compile("\\b[Aa]ll\\b|\\b[Tt]hese\\b|\\b[Tt]hose\\b");
	public static final Pattern dtSingular = Pattern
			.compile("\\b[Ee]ach\\b|\\b[Tt]his\\b|\\b[Tt]hat\\b");

	public static final Pattern PronounsNominative = Pattern
			.compile("\\bI\\b|\\b[Yy]ou\\b|\\b[Hh]e\\b|\\b[Ss]he\\b|\\b[Ii]t\\b|\\b[Ww]e\\b|\\b[Tt]hey\\b|\\b[Ww]ho\\b");
	public static final Pattern PronounsObjective = Pattern
			.compile("\\bme\\b|\\byou\\b|\\bhim\\b|\\bher\\b|\\bit\\b|\\bus\\b|\\bthem\\b|\\b[Ww]hom\\b");
	public static final Pattern PronounsPossessive = Pattern
			.compile("\\b[Mm]y\\b|\\b[Mm]ine\\b|\\b[Yy]our\\b|\\b[Yy]ours\\b|\\b[Hh]is\\b|\\b[Hh]er\\b|\\b[Hh]ers\\b|\\b[Ii]ts\\b|\\b[Oo]ur\\b|\\b[Oo]urs\\b|\\b[Tt]heir\\b|\\b[Tt]heirs\\b|\\b[Ww]hose\\b");

	public static final Pattern Time = Pattern
			.compile("second[s]|minute[s]|hour[s]|day[s]|week[s]|month[s]|year[s]|decade[s]|centuries|century");
	public static final Pattern Distance = Pattern
			.compile("inche[s]|millimeter[s]|centimeter[s]|feet|yard[s]|meter[s]|mile[s]|kilometer[s]");
	public static final Pattern Planet = Pattern
			.compile("Sun|Moon|Earth|Jupiter|Venus|Mars|Mercury|Saturn|Uranus|Neptune|Pluto", Pattern.CASE_INSENSITIVE);
	public static final Pattern Country = Pattern
			.compile("\\bworld\\b|\\bAfghanistan\\b|\\bBangladesh\\b|\\bBhutan\\b|\\bBurma\\b|\\bCambodia\\b|\\bChina\\b|\\bIndia\\b|\\bIndonesia\\b|\\bJapan\\b|\\bLaos\\b|\\bMalaysia\\b|\\bMaldives\\b|\\bMongolia\\b|\\bNepal\\b|\\bNorth Korea\\b|\\bPakistan\\b|\\bPhilippines\\b|\\bSingapore\\b|\\bSouth Korea\\b|\\bSri Lanka\\b|\\bThailand\\b|\\bTurkey\\b|\\bVietnam\\b|\\bPalestine\\b|\\bSikkim\\b|\\bAlbania\\b|\\bAustria\\b|\\bBelgium\\b|\\bBulgaria\\b|\\bCroatia\\b|\\bCyprus\\b|\\bDenmark\\b|\\bFinland\\b|\\bFrance\\b|\\bGermany\\b|\\bGreece\\b|\\bHungary\\b|\\bIceland\\b|\\bIreland\\b|\\bItaly\\b|\\bLiechtenstein\\b|\\bLuxembourg\\b|\\bMacedonia Skopje \\b|\\bMalta\\b|\\bMonaco\\b|\\bNetherlands\\b|\\bNorway\\b|\\bPoland\\b|\\bPortugal\\b|\\bRomania\\b|\\bRussia\\b|\\bSan Marino\\b|\\bSlovenia Ljubljana \\b|\\bSpain\\b|\\bSweden\\b|\\bSwitzerland\\b|\\bUnited Kingdom \\b|\\bYugoslavia\\b|\\bAustralien\\b|\\bFidschi\\b|\\bKiribati\\b|\\bNauru\\b|\\bNeuseeland\\b|\\bPapua-Neuguinea Port \\b|\\bSalomonen\\b|\\bTonga\\b|\\bVanuatu\\b|\\bWestsamoa\\b|\\bAnguilla The Valley \\b|\\bAntigua and Barbuda\\b|\\bArgentina\\b|\\bThe Bahamas\\b|\\bBarbados\\b|\\bBelize\\b|\\bBermuda\\b|\\bBolivia\\b|\\bBrazil\\b|\\bBritish Virgin Islands \\b|\\bCanada\\b|\\bChile\\b|\\bColombia\\b|\\bCosta Rica\\b|\\bCuba\\b|\\bDominican Republic \\b|\\bEcuador\\b|\\bEl Salvador\\b|\\bGreenland\\b|\\bGrenada\\b|\\bGuadeloupe\\b|\\bGuatemala\\b|\\bGuyana\\b|\\bHaiti\\b|\\bHonduras\\b|\\bJamaica\\b|\\bMartinique\\b|\\bMexico\\b|\\bMontserrat\\b|\\bNicaragua\\b|\\bPanama\\b|\\bParaguay\\b|\\bPeru\\b|\\bPuerto Rico\\b|\\bSt. Lucia\\b|\\bSt. Vincent and the Grenadines \\b|\\bSuriname\\b|\\bTrinidad and Tobago \\b|\\bTurks and Caicos Islands \\b|\\bUnited States\\b|\\bUruguay\\b|\\bVenezuela\\b|\\bVirgin Islands \\b|\\bAlgeria\\b|\\bAngola\\b|\\bBenin\\b|\\bBotswana\\b|\\bBurundi\\b|\\bCameroon\\b|\\bCentral African Republic \\b|\\bChad\\b|\\bCongo Rep.\\b|\\bDjibouti\\b|\\bEgypt\\b|\\bEquatorial Guinea\\b|\\bEritrea\\b|\\bEthiopia\\b|\\bGabon\\b|\\bThe Gambia\\b|\\bGhana\\b|\\bGuinea\\b|\\bGuinea-Bissau \\b|\\bKenya\\b|\\bLesotho\\b|\\bLiberia\\b|\\bLibya\\b|\\bMadagasca\\b|\\bMalawi\\b|\\bMali\\b|\\bMauritius\\b|\\bMauritania\\b|\\bMorocco\\b|\\bMozambique\\b|\\bNamibia\\b|\\bNiger\\b|\\bNigeria\\b|\\bReunion\\b|\\bRepublic of the Congo \\b|\\bRwanda\\b|\\bSao Tome and Principe \\b|\\bSenegal\\b|\\bSeychelles\\b|\\bSierra Leone\\b|\\bSomalia\\b|\\bSouth Africa\\b|\\bSudan\\b|\\bSwaziland\\b|\\bTanzania\\b|\\bTogo\\b|\\bTunisia\\b|\\bUganda\\b|\\bWestern Sahara\\b|\\bZambia\\b|\\bZimbabwe\\b");
	public static final Pattern City = Pattern
			.compile("\\bHonolulu\\b|\\bAnchorage\\b|\\bVancouver\\b|\\bSan Francisco\\b|\\bSeattle\\b|\\bLos Angeles\\b|\\bAklavik\\b|\\bEdmonton\\b|\\bPhoenix\\b|\\bDenver\\b|\\bMexico City\\b|\\bWinnipeg\\b|\\bHouston\\b|\\bMinneapolis\\b|\\bSt. Paul\\b|\\bNew Orleans\\b|\\bChicago\\b|\\bMontgomery\\b|\\bGuatemala\\b|\\bSalvador\\b|\\bTegucigalpa\\b|\\bManagua\\b|\\bHavana\\b|\\bIndianapolis\\b|\\bAtlanta\\b|\\bDetroit\\b|\\bWashington\\b|\\bPhiladelphia\\b|\\bToronto\\b|\\bOttawa\\b|\\bNassau\\b|\\bLima\\b|\\bKingston\\b|\\bBogota\\b|\\bNew York\\b|\\bMontreal\\b|\\bBoston\\b|\\bSanto Domingo\\b|\\bLa Paz\\b|\\bCaracas\\b|\\bSan Juan\\b|\\bHalifax\\b|\\bSantiago\\b|\\bAsuncion\\b|\\bSt. John's\\b|\\bBuenos Aires\\b|\\bMontevideo\\b|\\bBrasilia\\b|\\bSao Paulo\\b|\\bRio de Janeiro\\b|\\bReykjavik\\b|\\bLisbon\\b|\\bCasablanca\\b|\\bDublin\\b|\\bLondon\\b|\\bMadrid\\b|\\bBarcelona\\b|\\bParis\\b|\\bLagos\\b|\\bAlgiers\\b|\\bBrussels\\b|\\bAmsterdam\\b|\\bGeneva\\b|\\bZurich\\b|\\bFrankfurt\\b|\\bOslo\\b|\\bCopenhagen\\b|\\bRome\\b|\\bBerlin\\b|\\bPrague\\b|\\bZagreb\\b|\\bVienna\\b|\\bStockholm\\b|\\bBudapest\\b|\\bBelgrade\\b|\\bWarsaw\\b|\\bCape Town\\b|\\bSofia\\b|\\bAthens\\b|\\bTallinn\\b|\\bHelsinki\\b|\\bBucharest\\b|\\bMinsk\\b|\\bJohannesburg\\b|\\bIstanbul\\b|\\bKyiv\\b|\\bOdesa\\b|\\bHarare\\b|\\bCairo\\b|\\bAnkara\\b|\\bJerusalem\\b|\\bBeirut\\b|\\bAmman\\b|\\bKhartoum\\b|\\bNairobi\\b|\\bMoscow\\b|\\bAddis Ababa\\b|\\bBaghdad\\b|\\bAden\\b|\\bRiyadh\\b|\\bAntananarivo\\b|\\bKuwait City\\b|\\bTehran\\b|\\bAbu Dhabi\\b|\\bKabul\\b|\\bKarachi\\b|\\bTashkent\\b|\\bIslamabad\\b|\\bLahore\\b|\\bMumbai\\b|\\bNew Delhi\\b|\\bKolkata\\b|\\bKathmandu\\b|\\bDhaka\\b|\\bYangon\\b|\\bBangkok\\b|\\bHanoi\\b|\\bJakarta\\b|\\bKuala Lumpur\\b|\\bSingapore\\b|\\bHong Kong\\b|\\bPerth\\b|\\bBeijing\\b|\\bManila\\b|\\bShanghai\\b|\\bTaipei\\b|\\bSeoul\\b|\\bTokyo\\b|\\bDarwin\\b|\\bVladivostok\\b|\\bBrisbane\\b|\\bMelbourne\\b|\\bCanberra\\b|\\bSydney\\b|\\bAdelaide\\b|\\bKamchatka\\b|\\bAnadyr\\b|\\bSuva\\b|\\bWellington\\b|\\bChatham Island\\b|\\bKiritimati\\b");
	public static final Pattern GroupOrg = Pattern
			.compile("\\bETA\\b|\\bAi QaeDa Organization\\b|\\bTaliban\\b|\\bLiberation Tigers of Tamil Eelam\\b|\\bIrish Republican Army\\b|\\bOKUDAIRA\\b|\\bAl-Aqsa Martyrs Brigade \\b|\\bPartiya Karkerên Kurdistan\\b|\\bRed Brigades\\b|\\bSendero Luminoso\\b|\\bG8 Summit\\b|\\bSummit Group of Eight Summit\\b|\\bG20\\b|\\bGroup of Twenty\\b|\\bG24\\b|\\bGroup of Twenty Four\\b|\\bIADB\\b|\\bInter-American Development Bank\\b|\\bIATA\\b|\\bInternational Air Transport Association\\b|\\bIBRD\\b|\\bInternational Bank for Reconstruction and Development\\b|\\bICAO\\b|\\bInternational Civil Aviation Organization\\b|\\bICC\\b|\\bThe International Chamber of Commerce \\b|\\bICO\\b|\\bInternational Coffee Organization\\b|\\bICSID\\b|\\bInternational Centre for Settlement of Investment Disputes\\b|\\bIDA\\b|\\bInternational Development Association\\b|\\bIDB\\b|\\bInter-American Development Bank\\b|\\bIDB\\b|\\bIslamic Development Bank\\b|\\bIEA\\b|\\bInternational Energy Agency\\b|\\bIEC\\b|\\bInternational Electro Technical Commission\\b|\\bIFA\\b|\\bInternational Franchise Association\\b|\\bIFAC\\b|\\bInternational Federation of Accountants\\b|\\bIFAD\\b|\\bInternational Fund for Agriculture Development\\b|\\bIFC\\b|\\bInternational Finance Corporation\\b|\\bIGC\\b|\\bInternational Grains Council\\b|\\bILO\\b|\\bInternational Labor Organization\\b|\\bIMF\\b|\\bInternational Monetary Fund\\b|\\bIMC\\b|\\bInternational Maritime Committee\\b|\\bIMO\\b|\\bInternational Maritime Organization\\b|\\bINBAR\\b|\\bInternational Network for Bamboo and Rattan\\b|\\bINRO\\b|\\bInternational Natural Rubber Organization\\b|\\bIOE\\b|\\bOffice International Des Epizooties\\b|\\bIOOC\\b|\\bInternational Olive Oil Council\\b|\\bISDB\\b|\\bIslamic Development Bank\\b|\\bISF\\b|\\bInternational Shipping Federation\\b|\\bISO\\b|\\bInternational Organization for Standardization\\b|\\bISO\\b|\\bInternational Sugar Organization\\b|\\bITC\\b|\\bInternational Trade Centre\\b|\\bITCB\\b|\\bInternational Textiles and Clothing Bureau\\b|\\bITU\\b|\\bInternational Telecommunication Union\\b|\\bACP\\b|\\bGroup of African, Caribbean and Pacific Region Countries\\b|\\bADB\\b|\\bAsian Development Bank\\b|\\bADB\\b|\\bAfrican Development Bank\\b|\\bAPEC\\b|\\bAsia-Pacific Economic Cooperation\\b|\\bASEAN\\b|\\bAssociation of Southeast Asian Nations\\b|\\bAU\\b|\\bAfrican Union\\b|\\bBFA\\b|\\bBoao Forum for Asia\\b|\\bBIE\\b|\\bBureau of International Expositions\\b|\\bBIS\\b|\\bBank for International Settlements\\b|\\bCAC\\b|\\bCodex Alimentarius Commission\\b|\\bCDB\\b|\\bCaribbean Development Bank\\b|\\bCFC\\b|\\bCommon Fund for Commodities\\b|\\bCSD\\b|\\bCommission on Sustainable Development\\b|\\bEBRD\\b|\\bEuropean Bank for Reconstruction and Development\\b|\\bECLAC\\b|\\bUN Economic Commission for Latin America and Caribbean\\b|\\bECOSOC\\b|\\bUN Economic and Social Council\\b|\\bESCAP\\b|\\bUN Economic and Social Commission for Asia and the Pacific\\b|\\bESCWA\\b|\\bUN Economic and Social Commission for Western Asia\\b|\\bEU\\b|\\bEuropean Union\\b|\\bSecurity Council\\b|\\bSC\\b|\\bGeneral Agreement on Tariffs and Trade\\b|\\bGATT\\b|\\bInternational Telecommunications Union\\b|\\bITU\\b|\\bInternational Court of Justice\\b|\\bICJ\\b|\\bInternational Bank for Reconstruction and Development\\b|\\balso World Bank\\b|\\bIBRD\\b|\\bInternational Maritime Organization\\b|\\bIMO\\b|\\bInternational Monetary Fund\\b|\\bIMF\\b|\\bInternational Finance Corporation\\b|\\bIFC\\b|\\bInternational Development Association\\b|\\bIDA\\b|\\bInternational Labour Organization\\b|\\bILO\\b|\\bInternational Civil Aviation Organization\\b|\\bICAO\\b|\\bInternational Fund for Agricultural Development\\b|\\bIFAD\\b|\\bInternational Atomic Energy Agency\\b|\\bIAEA\\b|\\bEconomic and Social Council  ESC\\b|\\bECOSOC\\b|\\bGeneral Assembly\\b|\\bGA\\b|\\bUnited Nations University\\b|\\bUNU\\b|\\bUnited Nations Children's Fund\\b|\\bUNICEF\\b|\\bUnited Nations Industrial Development Organization\\b|\\bUNIDO\\b|\\bUnited Nations Environment Programme \\b|\\bUNEP\\b|\\bUnited Nations Educational,,Scientific and Cultural Organization\\b|\\bUNESCO\\b|\\bUnited Nations Development Programme\\b|\\bUNDP\\b|\\bFood and Agricultural Organization of the United Nations\\b|\\bFAO\\b|\\bUntied Nations Conference on Trade and Development\\b|\\bUNCTAD\\b|\\bOffice of the United Nations High Commissioner for Refugees\\b|\\bUNHCR\\b|\\bUnited Nations Fund for Population Activities\\b|\\bUNFPA\\b|\\bUnited Nations Special Fund\\b|\\bUNSF\\b|\\bUnited Nations Institute for Training and Research\\b|\\bUNITAR\\b|\\bSecretariat\\b|\\bWorld Food Council\\b|\\bWFC\\b|\\bWorld Meteorological Organization\\b|\\bWMO\\b|\\bWorld Health Organization\\b|\\bWHO\\b|\\bWorld Intellectual Property Organization\\b|\\bWIPO\\b|\\bTrusteeship Council\\b|\\bTC\\b|\\bUniversal Postal Union\\b|\\bUP\\b|\\bEuropean Union\\b|\\bEU\\b|\\bCommonwealth of Independent States\\b|\\bCIS\\b|\\bShanghai Cooperation Organization\\b|\\bSCO\\b|\\bArab Inter-Parliamentary Union\\b|\\bAIPU\\b|\\bLeague of Arab States\\b|\\bLAS\\b|\\bWestern European Union\\b|\\bWEU\\b|\\bLatin-American Parliament\\b|\\bUnion of the Arab Maghreb；Union du Maghreb Arabe\\b|\\bUMA\\b|\\bAfrican Union\\b|\\bAU\\b|\\bOrganization for Security and Co-operation in Europe\\b|\\bOSCE\\b|\\bOrganization of American States\\b|\\bOAS\\b|\\bOrganisation Internationale de la Francophonie\\b|\\bthe Rio Group\\b|\\bInternational Organization for Migration\\b|\\bIOM\\b|\\bIbero-American Summit\\b|\\bZangger Committee\\b|\\bZAC\\b|\\bThe Association of Asian Parliaments for Peace\\b|\\bAAPP\\b|\\bOrganization for the Prohibition of Chemical Weapons\\b|\\bOPCW\\b|\\bCouncil of Europe\\b|\\bCOE\\b|\\bSouth Asian Association for Regional Cooperation\\b|\\bSAARC\\b|\\bCouncil of the Baltic Sea States\\b|\\bCBSS\\b|\\bOrganization of African Unity\\b|\\bOAU\\b|\\bInter-Parliamentary Union\\b|\\bIPU\\b|\\bVisegrad Group\\b|\\bIntergovernmental Committee for Migration\\b|\\bICM\\b|\\bCo-Ordinating Committee for Export Control\\b|\\bThe Asia-Pacific Parliamentary Forum\\b|\\bAPPF\\b|\\bGulf Cooperation Council\\b|\\bGCC\\b|\\bWorld Federation of United Nations Association\\b|\\bWFUNA\\b|\\bAmnesty International\\b|\\bAI\\b|\\bInternational Criminal Police Organization\\b|\\bTERPOL\\b|\\bOrganization of the Islamic Conference\\b|\\bOIC\\b|\\bInter Action Council of Former Heads of Government\\b|\\bICFHG\\b|\\bThe Commonwealth\\b|\\bInternational Criminal Court\\b|\\bICC\\b|\\bAssociation of Caribbean States\\b|\\bACS\\b|\\bSouth American Community of Nations\\b|\\bCSN\\b|\\bSocialist International\\b|\\bSI\\b|\\bNuclear Suppliers Group\\b|\\bNSG\\b|\\bCommunity of Portuguese-Speaking Countries\\b|\\bCPLP\\b|\\bCentral European Initiative\\b|\\bCEI\\b|\\bNon-Aligned Movement\\b|\\bNAM\\b|\\bANZUS council\\b|\\bLiberal International\\b|\\bLI\\b|\\bGUAM Organization for Democracy and Economic Development \\b|\\bParis Club\\b|\\bGroup-10\\b|\\bGroup of 77\\b|\\bG77\\b|\\bInternational Labor Organization\\b|\\bILO\\b|\\bChina-Arab Cooperation Forum\\b|\\bMediterranean Union\\b|\\bAmerican Parliamentary Union\\b|\\bCommunity of Sahel - Saharan States \\b|\\bSouth Centre\\b|\\bBRICs\\b|\\bCentral American Parliament\\b|\\bBolivarian alliance\\b|\\bWorld Trade Organization\\b|\\bWTO\\b|\\bAsia-Pacific Economic Cooperation\\b|\\bAPEC\\b|\\bOrganization of Petroleum Exporting Countries\\b|\\bOPEC\\b|\\bIntergovernmental Authority on Development\\b|\\bIGAD\\b|\\bOrganization for Economic Cooperation and Development\\b|\\bOECD\\b|\\bAsian Development Bank\\b|\\bADB\\b|\\bWorld Bank\\b|\\bOrganization of Arab Petroleum Exporting Countries\\b|\\bOAPEC\\b|\\bGroup 15\\b|\\bSummit Level Group for South-South Consultation and Cooperation\\b|\\bAfrican Development Bank\\b|\\bADB\\b|\\bEuropean Bank for Reconstruction and Development\\b|\\bEBRD\\b|\\bIndian Ocean Rim Association for Regional Cooperation\\b|\\bIOR-ARC\\b|\\bGroup of Twenty\\b|\\bInter-American Development Bank\\b|\\bIDB\\b|\\bCaribbean Development Bank\\b|\\bCDB\\b|\\bEconomic Community of Central African States\\b|\\bECCAS\\b|\\bGroup of Twenty Four\\b|\\bG2\\b|\\bEuropean Central Bank\\b|\\bECB\\b|\\bEuropean Free Trade Association\\b|\\bEFTA\\b|\\bSouthern African Development Community\\b|\\bSADC\\b|\\bBureau of International Expositions\\b|\\bBIE\\b|\\bSouth American Common Market\\b|\\bMERCOSUR\\b|\\bUnion Economique Benelux\\b|\\bEconomic Community of West African States\\b|\\bECOWAS\\b|\\bGeneral Agreement on Tariffs and Trade\\b|\\bGATT\\b|\\bAndean Community\\b|\\bPacific Islands Forum\\b|\\bEconomic Community of the Great Lakes Countries\\b|\\bBoao Forum for Asia\\b|\\bBFA\\b|\\bPacific Community\\b|\\bPC\\b|\\bCommon Market for Eastern and Southern Africa\\b|\\bCOMESA\\b|\\bthe New Partnership for Africa's Development\\b|\\bNEPAD\\b|\\bWorld Tourism Organization\\b|\\bEast African Community\\b|\\bEAC\\b|\\bUnion Economique et Monétaire Ouest-Africaine\\b|\\bUEMOA\\b|\\bCaribbean Community and Common Market\\b|\\bCARICOM\\b|\\bInternational Energy Agency\\b|\\bIEA\\b|\\bLatin Aamerican Economic System\\b|\\bLAES\\b|\\bCentral American Integration System\\b|\\bSICA\\b|\\bGreater Mekong Subregion Economic Cooperation\\b|\\bWorld Energy Council\\b|\\bWEC\\b|\\bLatin American Integration Association\\b|\\bLAIA\\b|\\bInternational Air Transport Association\\b|\\bIATA\\b|\\bGroup of African, Caribbean and Pacific Region Countries\\b|\\bGroup of the ACP\\b|\\bBangladesh Steel & Engineering Corporation\\b|\\bBSEC\\b|\\bthe Group of the developing\\b|\\bG8\\b|\\bGroup of Eight Islamic Developing\\b|\\bFinancial Action Task Force on Money Laundering\\b|\\bFATF\\b|\\bInternational Monetary Fund\\b|\\bIMF\\b|\\bSouth Bank\\b|\\bCaribbean oil plan\\b|\\bInternational Organization for Standardization\\b|\\bISO\\b|\\bInter-American Development Bank Group\\b|\\bWorld Health Organization\\b|\\bWHO\\b|\\bThird World Academy of Sciences\\b|\\bTWAS\\b|\\bWorld Federation of Democratic Youth\\b|\\bWFDY\\b|\\bFederation Internationale de Football Association\\b|\\bFIFA\\b|\\bInternational Council for Science\\b|\\bICSU\\b|\\bWorld Council of Churches\\b|\\bWCC\\b|\\bOlympic Council of Asia\\b|\\bOCA\\b|\\bInternational Council on Archives\\b|\\bICA\\b|\\bInternational Confederation of Free Trade Unions\\b|\\bICFTU\\b|\\bInternational Olympic Committee\\b|\\bIOC\\b|\\bWorld Heritage Committee\\b|\\bInternational Programme for the Development of Communication\\b|\\bIPDC\\b|\\bUniversal Postal Union\\b|\\bUPU\\b|\\bInternational Military Sports Council\\b|\\bCISM\\b|\\bInternational Society for Chinese Language Teaching\\b|\\bWorld Blind Union\\b|\\bInternational Music Council\\b|\\bIMC\\b|\\bInternational Federation for Information Processing\\b|\\bIFIP\\b|\\bWorld Toilet Organization\\b|\\bUniversal Esperanto Association\\b|\\bUEA\\b|\\bInternational Organization of Journalists\\b|\\bInternational Press Institute\\b|\\bIPI\\b|\\bInternational Institute for Strategic Studies\\b|\\bIISS\\b|\\bInternational Federation of Journalists\\b|\\bIFJ\\b|\\bInternational Association of Universities\\b|\\bIAU\\b|\\bProject Orbis\\b|\\bORBIS\\b|\\bInternational Federation of Library Associations and Institutions\\b|\\bIFLA\\b|\\bWorld Muslim Congress\\b|\\bWMC\\b|\\bDoctors Without Borders, Medecins Sans Frontiers\\b|\\bMSF\\b|\\bInternational Federation of Translators；Federation International des Traducteurs\\b|\\bFIT\\b|\\bWorld Council of Indigenous Peoples\\b|\\bInternational Newsreel and News Film Association\\b|\\bINNA\\b|\\bInternational Union for Conservation of Nature and Natural Resources\\b|\\bIUCN\\b|\\bWorld Fellowship of Buddhists\\b|\\bWFB\\b|\\bWorld Technoplis Association\\b|\\bWTA\\b|\\bCoordinating Committee for International Voluntary Service\\b|\\bCCIVS\\b|\\bInternational Federation of Accountants\\b|\\bIFAC\\b|\\bWorld Leisure Organization\\b|\\bInternational Federation of Red Cross and Red Crescent Societies\\b|\\bAsia-Pacific Space Cooperation Organization\\b|\\bAPSCO\\b|\\bWorld allience of heakth care\\b|\\bInternational Association of Anti-Corruption Authorities\\b|\\bIAACA\\b|\\bInternational Whaling Commission\\b|\\bWorld Intellectual Property Organization\\b|\\bWIPO\\b|\\bOffice International Des Epizooties\\b|\\bOIE\\b|\\bAfrican Gender Equality Group\\b|\\bWorld Meteorological Organization\\b|\\bWMO\\b|\\bInternational Council of Museums\\b|\\bMobile World Congress and Global System for Mobile Association\\b|\\bthe International Union of Anthropological and Ethnological Sciiences\\b|\\bIUAES\\b|\\bWorldSkills International\\b|\\bAsia-Europe Meeting\\b|\\bASEM\\b|\\bConference on Interaction and Confidence-Building Measures in Asia\\b|\\bCICA\\b|\\bEast Asia Summit\\b|\\bInternational Anti-Corruption Conference\\b|\\bIACC\\b|\\bWorld Economic Forum\\b|\\bWEF\\b|\\bWorld Social Forum\\b|\\bWSF\\b|\\bWorld Economic Forum\\b|\\bWEF\\b|\\bWorld Social Forum\\b|\\bWSF\\b|\\bWorld Health Assembly\\b|\\bWHA\\b|\\bWorld Conference on Women\\b|\\bWorld Chinese Entrepreneurs Convention\\b|\\bWCEC\\b|\\bWorld Petroleum Congress\\b|\\bWPC\\b|\\bWorld Assembly of Youth\\b|\\bWAY\\b|\\bFranco-African Summit\\b|\\bConference on Disarmament in Geneva \\b|\\bASEAN Foreign Ministers Meeting\\b|\\bShanghai Cooperation Organization Summit\\b|\\bWorld Food Summit\\b|\\bSummit of the Group of Twenty\\b|\\bSummit Conference of Major Cities of the World\\b|\\bSCMCW\\b|\\bBalkan Summit\\b|\\bAfrica-Europe Summit\\b|\\bUnited Natiosn Global Conference on the Sustainable Development of Small Island Developing States \\b|\\bUnited Nations Millennium Summit\\b|\\bWorld Conference Against Racism of United Nations\\b|\\bInternational Conference on Population and Development\\b|\\bGlobal summit of women\\b|\\bWorld Urban Forum\\b|\\bInternational Conference of Asian Political Parties\\b|\\bASEAN Regional Forum\\b|\\bWorld Water Forum\\b|\\bGlobal summit of moon\\b|\\bWorld Knowledge Forum\\b|\\bWorld Lake Conference\\b|\\bAPEC Informal Leadership Meeting\\b|\\bASEAN-China High-level Symposium\\b|\\bASEAN, China, Japan and ROK High-level Symposium\\b|\\bStability Pact for South Eastern Europe\\b|\\bWeimar Triangle summit\\b|\\bSecurity and Prosperity Partnership of North America\\b|\\bSPP\\b");
	public static final Pattern Company = Pattern
			.compile("\\bExxon Mobil\\b|\\bWal-Mart Stores\\b|\\bGeneral Motors\\b|\\bFord Motor\\b|\\bDaimlerChrysler\\b|\\bRoyal Dutch/Shell Group\\b|\\bBP\\b|\\bGeneral Electric\\b|\\bMitsubishi\\b|\\bToyota Motor\\b|\\bMitsui\\b|\\bCitigroup\\b|\\bItochu\\b|\\bTotal Fina Elf\\b|\\bNippon Telegraph & Telephone\\b|\\bEnron\\b|\\bAXA\\b|\\bSumitomo\\b|\\bIntl\\. Business Machines\\b|\\bMarubeni\\b|\\bVolkswagen\\b|\\bHitachi\\b|\\bSiemens\\b|\\bIng Group\\b|\\bAllianz\\b|\\bMatsushita Electric Industrial\\b|\\bE\\. ON\\b|\\bNippon Life Insurance\\b|\\bDeutsche Bank\\b|\\bSony\\b|\\bAT&T\\b|\\bVerizon Communications\\b|\\bU\\.S\\. Postal Service\\b|\\bPhilip Morris\\b|\\bCGNU\\b|\\bJ\\.P\\. Morgan Chase\\b|\\bCarrefour\\b|\\bCredit Suisse\\b|\\bNissho Iwai\\b|\\bHonda Motor\\b|\\bBank of America Corp\\.\\b|\\bBNP Paribas\\b|\\bNissan Motor\\b|\\bToshiba\\b|\\bPDVSA\\b|\\bAssicurazioni Generali\\b|\\bFiat\\b|\\bMizuho Holdings\\b|\\bSBC Communications\\b|\\bBoeing\\b|\\bTexaco\\b|\\bFujitsu\\b|\\bDuke Energy\\b|\\bKroger\\b|\\bNEC\\b|\\bHewlett-Packard\\b|\\bHSBC Holdings\\b|\\bKoninklijke Ahold\\b|\\bNestlé\\b|\\bChevron\\b|\\bState Farm Insurance Cos\\.\\b|\\bTokyo Electric Power\\b|\\bUBS\\b|\\bDai-ichi Mutual Life Insurance\\b|\\bAmerican International Group\\b|\\bHome Depot\\b|\\bMorgan Stanley Dean Witter\\b|\\bSinopec\\b|\\bENI\\b|\\bMerrill Lynch\\b|\\bFannie Mae\\b|\\bUnilever\\b|\\bFortis\\b|\\bABN AMRO Holding\\b|\\bMetro\\b|\\bPrudential\\b|\\bState Power Corporation\\b|\\bRwe Group\\b|\\bCompaq Computer\\b|\\bRepsol YPF\\b|\\bPemex\\b|\\bMcKesson HBOC\\b|\\bChina Petroleum\\b|\\bLucent Technologies\\b|\\bSears Roebuck\\b|\\bPeugeot\\b|\\bMunich Re Group\\b|\\bMerck\\b|\\bProcter & Gamble\\b|\\bWorldCom\\b|\\bVivendi Universal\\b|\\bSamsung Electronics\\b|\\bTIAA-CREF\\b|\\bDeutsche Telekom\\b|\\bMotorola\\b|\\bSumitomo Life Insurance\\b|\\bZurich Financial Services\\b|\\bMitsubishi Electric\\b|\\bRenault\\b|\\bKmart\\b|\\bTarget\\b|\\bAlbertson's\\b|\\bHyundai\\b|\\bThyssen Krupp\\b|\\bSamsung\\b|\\bUSX\\b|\\bRoyal Philips Electronics\\b|\\bCrédit Agricole\\b|\\bBerkshire Hathaway\\b|\\bIntel\\b|\\bBASF\\b|\\bGoldman Sachs Group\\b|\\bJ\\.C\\. Penney\\b|\\bBMW\\b|\\bConoco\\b|\\bCostco Wholesale\\b|\\bHypoVereinsbank\\b|\\bSuez\\b|\\bSafeway\\b|\\bMetLife\\b|\\bSantander Central Hispano Group\\b|\\bDell Computer\\b|\\bSK\\b|\\bElectricite De France\\b|\\bDeutsche Post\\b|\\bTesco\\b|\\bFrance Télécom\\b|\\bBT\\b|\\bIngram Micro\\b|\\bNortel Networks\\b|\\bFreddie Mac\\b|\\bCardinal Health\\b|\\bL\\.M\\. Ericsson\\b|\\bMeiji Life Insurance\\b|\\bUnited Parcel Service\\b|\\bRoyal Bank of Scotland\\b|\\bMitsubishi Motors\\b|\\bPfizer\\b|\\bDynegy\\b|\\bReliant Energy\\b|\\bE\\.I\\. du Pont de Nemours\\b|\\bDelphi Automotive Systems\\b|\\bJohnson & Johnson\\b|\\bAllstate\\b|\\bRobert Bosch\\b|\\bAlcatel\\b|\\bUtiliCorp United\\b|\\bTyco International\\b|\\bHyundai Motor\\b|\\bBayer\\b|\\bAegon\\b|\\bIto-Yokado\\b|\\bInternational Paper\\b|\\bNokia\\b|\\bNippon Mitsubishi Oil\\b|\\bOlivetti\\b|\\bWells Fargo\\b|\\bMitsubishi Heavy Industries\\b|\\bGlaxoSmithKline\\b|\\bPetrobrás\\b|\\bAetna\\b|\\bDaiei\\b|\\bSaint-Gobain\\b|\\bUnited Technologies\\b|\\bPrudential Ins\\. Co\\. of America\\b|\\bLehman Brothers Holdings\\b|\\bBank of Tokyo-Mitsubishi\\b|\\bTelefónica\\b|\\bPG&E Corp\\.\\b|\\bBellSouth\\b|\\bCanon\\b|\\bRoyal & Sun Alliance Insurance Group\\b|\\bJ\\. Sainsbury\\b|\\bWalt Disney\\b|\\bConAgra\\b|\\bLockheed Martin\\b|\\bBank One Corp\\.\\b|\\bBarclays\\b|\\bJusco\\b|\\bHoneywell International\\b|\\bNippon Steel\\b|\\bSumitomo Bank\\b|\\bTosco\\b|\\bFirst Union Corp\\.\\b|\\bSociété Générale\\b|\\bKansai Electric Power\\b|\\bDresdner Bank\\b|\\bAmerican Express\\b|\\bStatoil\\b|\\bSprint\\b|\\bWestdeutsche Landesbank\\b|\\bLloyds TSB Group\\b|\\bLG International\\b|\\bSouthern\\b|\\bSupervalu\\b|\\bEnel\\b|\\bAlcoa\\b|\\bEast Japan Railway\\b|\\bDow Chemical\\b|\\bABB\\b|\\bMicrosoft\\b|\\bGroupe Pinault-Printemps\\b|\\bTomen\\b|\\bFleetBoston\\b|\\bCNP Assurances\\b|\\bIntesabci\\b|\\bAutoNation\\b|\\bAlstom\\b|\\bIndian Oil\\b|\\bPreussag\\b|\\bGeorgia-Pacific\\b|\\bVodafone\\b|\\bIndustrial & Commercial Bank of China\\b|\\bBanco Bilbao Vizcaya Argentaria\\b|\\bTXU\\b|\\bEl Paso Corp\\.\\b|\\bNichimen\\b|\\bGroupe Auchan\\b|\\bNew York Life Insurance\\b|\\bBristol-Myers Squibb\\b|\\bPhillips Petroleum\\b|\\bSamsung Life Insurance\\b|\\bWalgreen\\b|\\bNovartis\\b|\\bUnitedHealth Group\\b|\\bCommerzbank\\b|\\bCrédit Lyonnais\\b|\\bChina Telecommunications\\b|\\bLoews\\b|\\bJapan Tobacco\\b|\\bAventis\\b|\\bKDDI\\b|\\bCoca-Cola\\b|\\bPepsiCo\\b|\\bTech Data\\b|\\bSara Lee\\b|\\bChubu Electric Power\\b|\\bSanyo Electric\\b|\\bAMR\\b|\\bCaterpillar\\b|\\bJapan Postal Service\\b|\\bRabobank\\b|\\bCVS\\b|\\bLG Electronics\\b|\\bViacom\\b|\\bCigna\\b|\\bAbbey National\\b|\\bAsahi Mutual Life Insurance\\b|\\bBergen Brunswig\\b|\\bToyota Tsusho\\b|\\bBank Of China\\b|\\bUAL\\b|\\bSysco\\b|\\bPetronas\\b|\\bElectronic Data Systems\\b|\\bCisco Systems\\b|\\bLowe's\\b|\\bSwiss Reinsurance\\b|\\bXerox\\b|\\bBridgestone\\b|\\bBritish American Tobacco\\b|\\bFoncière Euris\\b|\\bFederated Department Stores\\b|\\bStandard Life Assurance\\b|\\bSNCF\\b|\\bRaytheon\\b|\\bIdemitsu Kosan\\b|\\bFedEx\\b|\\bKingfisher\\b|\\bMazda Motor\\b|\\bDenso\\b|\\bSharp\\b|\\bPharmacia\\b|\\bAstraZeneca\\b|\\bJapan Energy\\b|\\bSinochem\\b|\\bEADS\\b|\\bNorsk Hydro\\b|\\bTokio Marine & Fire Insurance\\b|\\bGazprom\\b|\\bBouygues\\b|\\bFranz Haniel\\b|\\bAlmanij\\b|\\bKajima\\b|\\bTRW\\b|\\bSanwa Bank\\b|\\bJohnson Controls\\b|\\bLegal & General\\b|\\bRoche Group\\b|\\bNorthwestern Mutual Life Ins\\.\\b|\\bIBP\\b|\\bYasuda Mutual Life Insurance\\b|\\bDelhaize 'Le Lion'\\b|\\bMinnesota Mining & Mfg\\.\\b|\\bHCA\\b|\\bMitsui Mutual Life Insurance\\b|\\bQwest Communications\\b|\\bLandesbank Baden-Württemberg\\b|\\bBertelsmann\\b|\\bKorea Electric Power\\b|\\bOnex\\b|\\bLiberty Mutual Insurance Group\\b|\\bDentsu\\b|\\bTransCanada Pipelines\\b|\\bNKK\\b|\\bDiageo\\b|\\bAMP\\b|\\bSakura Bank\\b|\\bWeyerhaeuser\\b|\\bNippon Express\\b|\\bDelta Air Lines\\b|\\bSkandia Group\\b|\\bTaisei\\b|\\bMitsubishi Chemical\\b|\\bAdecco\\b|\\bWashington Mutual\\b|\\bMYCAL\\b|\\bBayerische Landesbank\\b|\\bSun Microsystems\\b|\\bDexia Group\\b|\\bFaros\\b|\\bCanadian Imperial Bank of Commerce\\b|\\bEmerson Electric\\b|\\bTohoku Electric Power\\b|\\bShimizu\\b|\\bColes Myer\\b|\\bRoyal Bank of Canada\\b|\\bJapan Airlines\\b|\\bBest Buy\\b|\\bHalifax\\b|\\bCorus Group\\b|\\bRite Aid\\b|\\bNorinchukin Bank\\b|\\bSwiss Life Ins\\. & Pension\\b|\\bCentrica\\b|\\bChina Mobile\\b|\\bGeorge Weston\\b|\\bBHP\\b|\\bBCE\\b|\\bGroupama-Gan\\b|\\bAnglo American\\b|\\bDG Bank Group\\b|\\bLa Poste\\b|\\bSeagram\\b|\\bUniCredito Italiano\\b|\\bNationwide Insurance Enterprise\\b|\\bCoca-Cola Enterprises\\b|\\bHartford Financial Services\\b|\\bValero Energy\\b|\\bNational Australia Bank\\b|\\bBAE Systems\\b|\\bMan Group\\b|\\bMichelin\\b|\\bPublix Super Markets\\b|\\bOccidental Petroleum\\b|\\bUsinor\\b|\\bMay Department Stores\\b|\\bSuzuki Motor\\b|\\bFleming\\b|\\bGoodyear Tire & Rubber\\b|\\bLukoil\\b|\\bSK Global\\b|\\bUltramar Diamond Shamrock\\b|\\bDeutsche Bahn\\b|\\bEndesa\\b|\\bMcDonald's\\b|\\bIsuzu Motors\\b|\\bVolvo\\b|\\bSolectron\\b|\\bBanco Bradesco\\b|\\bNews Corp\\.\\b|\\bKarstadtQuelle\\b|\\bLear\\b|\\bLufthansa Group\\b|\\bEastman Kodak\\b|\\bKimberly-Clark\\b|\\bRicoh\\b|\\bAmerican Home Products\\b|\\bAbbott Laboratories\\b|\\bBritish Airways\\b|\\bWinn-Dixie Stores\\b|\\bAmerican Electric Power\\b|\\bOtto Versand\\b|\\bGap\\b|\\bRAG\\b|\\bVinci\\b|\\bToronto-Dominion Bank\\b|\\bSumitomo Metal Industries\\b|\\bSumitomo Electric Industries\\b|\\bHalliburton\\b|\\bJapan Telecom Co\\. Ltd\\.\\b|\\bMontedison\\b|\\bGroupe Danone\\b|\\bDeere\\b|\\bKyushu Electric Power\\b|\\bTextron\\b|\\bCarso Global Telecom\\b|\\bElectrolux\\b|\\bFuji Photo Film\\b|\\bArrow Electronics\\b");
	public static final Pattern Univercity = Pattern
			.compile("\\bHarvard\\b|\\bStanford\\b|\\bYale\\b|\\bCalifornia Institute of Technology\\b|\\bUniversity of California at Berkeley\\b|\\bUniversity of Cambridge\\b|\\bMassachusetts Institute Technology\\b|\\bOxford\\b|\\bUniversity of California at San Francisco\\b|\\bColumbia\\b|\\bUniversity of Michigan at Ann Arbor\\b|\\bUniversity of California at Los Angeles\\b|\\bUniversity of Pennsylvania\\b|\\bDuke\\b|\\bPrinceton\\b|\\bTokyo\\b|\\bImperial College London\\b|\\bUniversity of Toronto\\b|\\bCornell\\b|\\bUniversity of Chicago\\b|\\bSwiss Federal Institute of Technology in Zurich\\b|\\bUniversity of Washington at Seattle\\b|\\bUniversity of California at San Diego\\b|\\bJohns Hopkins\\b|\\bUniversity College London\\b|\\bSwiss Federal Institute of Technology in Lausa\\b|\\bUniversity Texas at Austin\\b|\\bUniversity of Wisconsin at Madison\\b|\\bKyoto\\b|\\bUniversity of Minnesota Twin Cities\\b|\\bUniversity of British Columbia\\b|\\bUniversity of Geneva\\b|\\bWashington in St .Louis\\b|\\bLondon School of Economics\\b|\\bNorthwestern\\b|\\bNational of Singapore\\b|\\bUniversity of Pittsburgh\\b|\\bAustralian National\\b|\\bNew York\\b|\\bPennsylvania State\\b|\\bUniversity of North Carolina at Chapel Hill\\b|\\bMcGill\\b|\\bEcole Poly technique\\b|\\bUniversity of Basel\\b|\\bUniversity of Maryland\\b|\\bUniversity of Zurich\\b|\\bUniversity of Edinburgh\\b|\\bUrbana Champaign of Illinois at Urbana Champaign\\b|\\bUniversity of Bristol\\b|\\bUniversity of Sydney\\b|\\bBoulder of Colorado at Boulder\\b|\\bUtrecht\\b|\\bUniversity of Melbourne\\b|\\bUniversity of Southern California\\b|\\bUniversity of Alberta\\b|\\bBrown\\b|\\bOsaka\\b|\\bUniversity of Manchester\\b|\\bUniversity o f California at Santa Barbara\\b|\\bHong Kong of Science and Technology\\b|\\bWageningen\\b|\\bMichigan State\\b|\\bUniversity of Munich\\b|\\bUniversity of New South Wales\\b|\\bBoston\\b|\\bVanderbilt\\b|\\bUniversity of Rochester\\b|\\bTohoku\\b|\\bUniversity of Hong Kong\\b|\\bUniversity of Sheffield\\b|\\bNan yang Technological\\b|\\bUniversity of Vienna\\b|\\bMonash\\b|\\bUniversity of Nottingham\\b|\\bCarnegie Mellon\\b|\\bLund\\b|\\bA&M Texas A&M\\b|\\bUniversity of Western Australia\\b|\\bEcole Normale Super Paris\\b|\\bUniversity of Virginia\\b|\\bTechnical of Munich\\b|\\bHebrew of Jerusalem\\b|\\bLeiden\\b|\\bUniversity of Waterloo\\b|\\bKing's College London\\b|\\bPurdue\\b|\\bUniversity of Birmingham\\b|\\bUppsala\\b|\\bUniversity of Amsterdam\\b|\\bUniversity of Heidelberg\\b|\\bUniversity of Queensland\\b|\\bUniversity of Leuven\\b|\\bEmory\\b|\\bNagoya\\b|\\bCase Western Reserve\\b|\\bChinese of Hong Kong\\b|\\bUniversity of Newcastle\\b|\\bInnsbruck\\b|\\bUniversity of Massachusetts at Amherst\\b|\\bSussex\\b");
	public static final Pattern Continent = Pattern
			.compile("\\bAsia\\b|\\bEurope\\b|\\bAfrica\\b|\\bLatin America\\b|\\bSouth America \\b|\\bNorth America \\b|\\bOceania\\b|\\bAntarctica\\b");
	public static final Pattern Ocean = Pattern
			.compile("\\bArctic Ocean\\b|\\bBaffin Bay\\b|\\bBarents Sea\\b|\\bBeaufort Sea\\b|\\bChukchi Sea\\b|\\bEast Siberian Sea\\b|\\bGreenland Sea\\b|\\bHudson Bay\\b|\\bHudson Strait\\b|\\bKara Sea\\b|\\bLaptev Sea\\b|\\bWhite Sea\\b|\\bPacific Ocean\\b|\\bCelebes Sea\\b|\\bCoral Sea\\b|\\bEast China Sea\\b|\\bPhilippine Sea\\b|\\bSea of Japan\\b|\\bSouth China Sea\\b|\\bSulu Sea\\b|\\bTasman Sea\\b|\\bYellow Sea\\b|\\bAtlantic Ocean\\b|\\bCaribbean Sea\\b|\\bthe Gulf of Mexico\\b|\\bHudson Bay\\b|\\bMediterranean Sea\\b|\\bNorth Sea\\b|\\bBaltic Sea\\b|\\bCeltic Sea\\b|\\bIndian Ocean\\b|\\bthe Gulf of Aden\\b|\\bAndaman Sea\\b|\\bArabian Sea\\b|\\bBay of Bengal\\b|\\bGreat Australian Bight\\b|\\bLaccadive Sea\\b|\\bGulf of Mannar\\b|\\bMozambique Channel\\b|\\bGulf of Oman\\b|\\bPersian Gulf\\b|\\bRed Sea\\b|\\bSouthern Ocean\\b|\\bGreat Southern Ocean\\b|\\bAntarctic Ocean\\b|\\bSouth Polar Ocean and Austral Ocean\\b|\\bAntarctic Circumpolar Current\\b|\\bDrake Passage\\b|\\bScotia Sea\\b|\\bWeddell Sea\\b|\\bKing Haakon VII Sea\\b|\\bLazarev Sea\\b|\\bRiiser-Larsen Sea\\b|\\bthe Cosmonaut Sea\\b|\\bCooperation Sea\\b|\\bDavis Sea\\b|\\bMawson Sea\\b|\\bD'Urville Sea\\b|\\bSomov Sea\\b|\\bRoss Sea\\b|\\bAmundsen Sea\\b|\\bBellingshausen Sea\\b");
	public static final Pattern River = Pattern
			.compile("\\bNile\\b|\\bAmazon\\b|\\bYangtze\\b|\\bChang Jiang\\b|\\bYangzi\\b|\\bUlan Moron\\b|\\bDangqu\\b|\\bTongtian\\b|\\bJinsha\\b|\\bSichuan\\b|\\bJing\\b|\\bMississippi\\b|\\bYenisei\\b|\\bYellow\\b|\\bOb\\b|\\bParaná\\b|\\bCongo\\b|\\bAmur\\b|\\bLena\\b|\\bMekong\\b|\\bMackenzie\\b|\\bNiger\\b|\\bMurray\\b|\\bTocantins\\b|\\bVolga\\b|\\bShatt al-Arab\\b|\\bMadeira\\b|\\bPurus\\b|\\bYukon\\b|\\bIndus\\b|\\bSão Francisco\\b|\\bSyr Darya\\b|\\bSalween\\b|\\bSaint Lawrence\\b|\\bRio Grande\\b|\\bLower Tunguska\\b|\\bBrahmaputra\\b|\\bDanube\\b|\\bZambezi\\b|\\bVilyuy\\b|\\bAraguaia\\b|\\bGanges\\b|\\bAmu Darya\\b|\\bJapurá\\b|\\bNelson\\b|\\bParaguay\\b|\\bKolyma\\b|\\bPilcomayo\\b|\\bUpper Ob\\b|\\bIshim\\b|\\bJuruá\\b|\\bUral\\b|\\bArkansas\\b|\\bColorado\\b|\\bOlenyok\\b|\\bDnieper\\b|\\bAldan\\b|\\bUbangi\\b|\\bNegro\\b|\\bColumbia\\b|\\bPearl\\b|\\bRed\\b|\\bAyeyarwady\\b|\\bKasai\\b|\\bOhio\\b|\\bOrinoco\\b|\\bTarim\\b|\\bXingu\\b|\\bOrange\\b|\\bNorthern Salado\\b|\\bVitim\\b|\\bTigris\\b|\\bSonghua\\b|\\bTapajós\\b|\\bDon\\b|\\bStony Tunguska\\b|\\bPechora\\b|\\bKama\\b|\\bLimpopo\\b|\\bGuaporé\\b|\\bIndigirka\\b|\\bSnake\\b|\\bSenegal\\b|\\bUruguay\\b|\\bBlue Nile\\b|\\bChurchill\\b|\\bKhatanga\\b|\\bMurrumbidgee\\b|\\bOkavango\\b|\\bVolta\\b|\\bBeni\\b|\\bPlatte\\b|\\bTobol\\b|\\bJubba\\b|\\bIçá \\b|\\bMagdalena\\b|\\bHan\\b|\\bOka\\b|\\bPecos\\b|\\bUpper Yenisei\\b|\\bGodavari\\b|\\bColorado\\b|\\bRío Grande\\b|\\bBelaya\\b|\\bCooper–Barcoo\\b|\\bMarañón\\b|\\bDniester\\b|\\bBenue\\b|\\bIli\\b|\\bWarburton\\b|\\bSutlej\\b|\\bYamuna\\b|\\bVyatka\\b|\\bFraser\\b|\\bMtkvari\\b|\\bGrande\\b|\\bBrazos\\b|\\bCauca\\b|\\bLiao\\b|\\bYalong\\b|\\bIguaçu\\b|\\bOlyokma\\b|\\bNorthern Dvina\\b|\\bIriri\\b|\\bKrishna\\b|\\bNarmada\\b|\\bLomami\\b|\\bOttawa\\b|\\bLerma\\b|\\bElbe\\b|\\bZeya\\b|\\bJuruena\\b|\\bUpper Mississippi\\b|\\bRhine\\b|\\bAthabasca\\b|\\bCanadian\\b|\\bNorth Saskatchewan\\b|\\bVaal\\b|\\bShire	\\b|\\bNen\\b|\\bKızıl\\b|\\bGreen\\b|\\bMilk\\b|\\bChindwin\\b|\\bSankuru\\b|\\bWu\\b|\\bRed\\b|\\bJames\\b|\\bKapuas\\b|\\bDesna\\b|\\bHelmand\\b|\\bMadre de Dios\\b|\\bTietê\\b|\\bVychegda\\b|\\bSepik\\b|\\bCimarron\\b|\\bAnadyr\\b|\\bParaíba do Sul\\b|\\bJialing\\b|\\bLiard\\b|\\bCumberland\\b|\\bWhite\\b|\\bDraa\\b|\\bHuallaga\\b|\\bKwango\\b|\\bGambia\\b|\\bChenab\\b|\\bGhaghara\\b|\\bYellowstone\\b|\\bHuai\\b|\\bAras\\b|\\bChu\\b|\\bSeversky Donets\\b|\\bBermejo\\b|\\bFly\\b|\\bGuaviare\\b|\\bKuskokwim\\b|\\bTennessee\\b|\\bVistula\\b|\\bAruwimi\\b|\\bDaugava\\b|\\bGila\\b|\\bLoire\\b|\\bEssequibo\\b|\\bKhoper\\b|\\bTagus\\b");
	public static final Pattern ChineseName = Pattern
			.compile("Ai|Ann|An|Ao|Ba|Pa|Bai|Pai|Paul|Pao|Bao|Ban|Pan|Bei|Pei|Bi|Pih|Bian|Bein|Bo|Bu|Po|Pu|Bu|Poo|Bai-li|Baili|Pai-li|Paili|Cai|Chai|Tsia|Choi|Tsai|Cao|Chao|Chiao|Tsao|Cen|Cheng|Cui|Tsui|Zha|Cha|Chiong|Chang|Che|Chen|Chan|Tan|Cheng|Chi|Chu|Chun-yu|Chunyu|Chwen-yu|Chwenyu|Dai|Day|Tai|Deng|Teng|Tang|Tung|Di|Ti|Diao|Tiao|Ding|Ting|Dong|Tung|Tong|Dou|Tou|To|Du|Too|Duan|Tuan|Duan-mu|Duanmu|Dong-guo|Dongguo|Tung-kuo|Tungkuo|Tung-fang|Tungfang|Dongfang|Fan|Van|Fang|Fei|Feng|Fung|Fong|Fu|Foo|Gai|Kai|Gan|Kan|Gao|Kao|Ge|Keh|Geng|Keng|Gong|Kung|Gou|Kou|Gu|Ku|Koo|Gui|Kwei|Guan|Kuan|Kwan|Guo|Kwok|Kuo|Gong-sun|Gongsun|Kung-sun|Kungsun|Gong-yang|Gongyang|Kung-yang|Kungyang|Gong-ye|Gongye|Kung-yeh|Kungyeh|Gu-liang|Guliang|Ku-liang|Kuliang|Hai|Hay|Hon|Han|Hang|Hao|Hoa|Howe|He|Ho|Huan|Won|Hou|Hong|Hung|Hu|Hoo|Hua|Huan|Huang|Wong|Hwang|Huo|Huang-pu|Hangpu|Hwang-fu|Hwangfu|Hu-yan|Huyan|Hu-yen|Huyen|Ji|Chi|Ju|Chu|Jia|Chia|Jian|Jen|Jane|Chieh|Jiang|Chiang|Kwong|Jiao|Chiao|Jin|King|Jing|King|Ching|Gan|Kan|Kang|Ke|Kor|Ko|Kong|Kung|Kou|Ker|Kuai|Kuang|Lai|Lan|Lang|Long|Lao|Le|Loh|Lei|Rae|Ray|Lei|Leng|Lee|Li|Lai|Li|Lian|Lien|Liu|Liao|Leung|Liang|Lim|Lin|Lin|Liu|Lau|Long|Lou|Lu|Loo|Lun|Luo|Loh|Lo|Law|Lam|Rowe|Lv|Lui|Lu|Ling-hu|Linghu|Lin-hoo|Linhoo|Ma|Mai|Mak|Man|Mai|Mao|Mei|Mong|Meng|Mi|Miau|Miao|Min|Mu|Moo|Mo|Mok|Mo|Mou-qi|Mouqi|Moh-chi|Mohchi|Mu-rong|Murong|Mo-yung|Moyung|Ni|Nee|Ning|Nie|Nieh|New|Niu|Nong|Long|Nan-gong|Nangong|Nan-kung|Nankung|Au|Ou|Ou-yang|Ouyang|Pang|Pan|Pang|Pei|Bae|Peng|Phang|Pong|Pi|Pee|Ping|Poo|Pu|Pu-yang|Puyang|Poo-yang|Pooyang|Qi|Chi|Chyi|Chi|Chih|Qian|Chien|Qiao|Chiao|Joe|Qin|Ching|Qiu|Chiu|qu|Chiu|Chu|Ran|Yien|RaoYau|Ren|Jen|Yum|Rong|Yung|YuanYuen|Rei|Nei|Si|Sze|Sang|Sha|Sa|Shao|San|Sang|Shang|Shen|Shen|Shih|Shi|Su|Sue|Se|Soo|Hsu|Sun|Suen|Song|Soung|Si-kong|Sikong|Sze-kung|Szekung|Si-ma|Sima|Sze-ma|Szema|Si-tu|Situ|Sze-to|Szeto|Shan-yu|Shanyu|San-yu|Sanyu|Shang-guan|Shangguan|Sang-kuan|Sangkuan|Shen-tu|Shentu|Tan|Town|Towne|Tang|Tai|Tan|Tam|Tao|Teng|Tian|Tien|Tong|Tung|Tu|Tan-tai|Tantai|Tuo-pa|Tuopa|Toh-bah|Tohbah|Wan|Wong|Wei|Wen|Chin|Vane|Man|Ong|Wu|NG|Woo|Xi|Hsi|Chi|Xia|Har|Hsia|Xiao|Shaw|Siu|Hsiao|Xiang|Hsiang|Xie|Tse|Shieh|Xin|Hsing|Xing|Hsing|Xiong|Hsiung|Hsiun|Xu|Shun|Hui|Hsu|Xuan|Hsuan|XueHsueh|Xi-men|Ximen|See-men|Seemen|Xia-hou|Xiahou|Hsia-hou|Hsiahou|Xuan-yuan|Xuanyuan|Hsuan-yuen|Hsuanyuen|Yan|Yim|Yen|Young|Yang|Yao|Yau|Yip|Yeh|Yih|Yih|E|Yi|Yin|Ying|Ying|YU|You|Yue|Yu|Yuan|Yuen|Yue|Yun|Wing|Yu-chi|Yuchi|Yu-wen|Yuwen|Chang|Zheng|Ceng|Tsang|Cheng|Tseng|Zi|Chung|Zhuo|Cho|Tso|Di|Chia|Zhan|Chan|Zhen|Zhan|Tsan|Zhang|Cheung|Chang|Zhao|Chao|Chiu|Chiao|Chioa|ZhouChau|Chou|Chow|Chung|Zu|Chu|Chuh|Zhuang|Chong|Zhong-li|Zhongli|Chung-li|Chungli|Zhu-ge|Zhuge|Chu-keh|Chukeh");
	public static final Pattern Book = Pattern
			.compile("\\bGorgias\\b|\\bIon\\b|\\bLaws\\b|\\bMeno\\b|\\bParmenides\\b|\\bPhaedo\\b|\\bPhaedrus\\b|\\bPhilebus\\b|\\bProtagoras\\b|\\bSophist\\b|\\bStatesman\\b|\\bSymposium\\b|\\bThe Republic\\b|\\bThe Seventh Letter\\b|\\bTheaetetus\\b|\\bTimaeus\\b|\\bCategories\\b|\\bOn Interpretation\\b|\\bOn Sophistical Refutations\\b|\\bTopics\\b|\\bPrior Analytics\\b|\\bPosterior Analytics\\b|\\bMetaphysics\\b|\\bMeteorology\\b|\\bNicomachean Ethics\\b|\\bPhysics\\b|\\bPoetics\\b|\\bPolitics\\b|\\bRhetoric\\b|\\bOn Dreams\\b|\\bOn Generation and Corruption\\b|\\bOn Longevity and Shortness ofLife\\b|\\bOn Memory and Reminiscence\\b|\\bOn Sense and the Sensible\\b|\\bOn Sleep and Sleeplessness\\b|\\bHistory ofAnimals\\b|\\bOn the Gait ofAnimals\\b|\\bOn the Generation ofAnimals\\b|\\bOn the Motion ofAnimals\\b|\\bOn the Parts ofAnimals\\b|\\bOn the Heavens\\b|\\bOn the Soul\\b|\\bOn Youth and Old Age, On Life and Death, On Breathing\\b|\\bThe Athenian Constitution\\b|\\bThe Origin ofSpecies\\b|\\bThe Descent ofMan, and Selection in Relation to Sex\\b|\\bThe Voyage of the Beagle\\b|\\bAn Essay on the Principle ofPopulation\\b|\\bThe Interpretation ofDreams\\b|\\bThe History of the Decline and Fall of the Roman Empire\\b|\\bEmma\\b|\\bMansfield Park\\b|\\bPersuasion\\b|\\bPride and Prejudice\\b|\\bSense and Sensibility\\b|\\bLittle Woman\\b|\\bGood Wives\\b|\\bThe Tenant of Wildfell Hall\\b|\\bAgnes Grey\\b|\\bJane Eyre\\b|\\bThe Professor\\b|\\bWuthering Heights\\b|\\bEssays\\b|\\bThe Holy War\\b|\\bThe Pilgrim's Progress\\b|\\bAlice's Adventures in Wonderland\\b|\\bThrough the Looking Glass\\b|\\bLord Jim\\b|\\bNostromo\\b|\\bThe Secret Agent\\b|\\bAlmayer's Folly\\b|\\bHeart ofDarkness\\b|\\bThe Nigger of the Marcissus\\b|\\bThe Shadow Line\\b|\\bYouth\\b|\\bMaggie- A Girl of the Streets\\b|\\bThe Red Badge ofCourage\\b|\\bNo Name\\b|\\bThe New Magdalen\\b|\\bThe Moonstone\\b|\\bThe Woman in White\\b|\\bAlexander's Bridge\\b|\\bMy Antonia\\b|\\bO Pioneers!\\b|\\bThe Song of the Lark\\b|\\bThe Troll Garden and Selected Stories\\b|\\bA Christmas Carol\\b|\\bA Tale ofTwo Cities\\b|\\bAmerican Notes\\b|\\bBarnaby Rudge\\b|\\bBleak House\\b|\\bDavid Copperfield\\b|\\bDomby and Son\\b|\\bGreat Expectations\\b|\\bHard Times\\b|\\bLittle Dorrit\\b|\\bMartin Chuzzlewit\\b|\\bNicholas Nickleby\\b|\\bOliver Twist\\b|\\bOur Mutual Friend\\b|\\bThe Battle ofLife\\b|\\bThe Cricket on the Hearth\\b|\\bThe Haunted Man and the Ghost's Bargain\\b|\\bThe Mystery ofEdwin Drood\\b|\\bThe Old Curiosity Shop\\b|\\bThe Pickwick Papers\\b|\\bThe Journal of the Plague Year\\b|\\bMoll Flanders\\b|\\bRobinson Crusoe\\b|\\bThe Adventures ofSherlock Holmes\\b|\\bA Study in Scarlet\\b|\\bMemoirs ofSherlock Holmes\\b|\\bThe Hound of the Baskervilles\\b|\\bThe Lost World\\b|\\bThe Poison Belt\\b|\\bThe Return ofSherlock Holmes\\b|\\bThe Sign ofFour\\b|\\bThe Valley ofFear\\b|\\bThe Mill on the Floss\\b|\\bAdam Bede\\b|\\bMiddlemarch\\b|\\bSilas Marner\\b|\\bEnglish Traits\\b|\\bEssays\\b|\\bThe Conduct ofLife\\b|\\bPoor Richard's Almanack\\b|\\bThe Autobiography\\b|\\bThe History ofTom Jones, A Foundling\\b|\\bMary Barton\\b|\\bNorth and South\\b|\\bRuth\\b|\\bSylvia's Lovers\\b|\\bWives and Daughters\\b|\\bCousin Phillis\\b|\\bCranford\\b|\\bTwice-Told Tales\\b|\\bMosses from an Old Manse\\b|\\bThe House ofSeven Gables\\b|\\bThe Scarlet Letter\\b|\\bThe Snow Image\\b|\\bA Pair ofBlue Eyes\\b|\\bFar from the Madding Crowd\\b|\\bJude the Obscure\\b|\\bTess of the d'Urbervilles\\b|\\bThe Mayor ofCasterbridge\\b|\\bThe Return of the Native\\b|\\bThe Adventures ofCaptain Bonneville\\b|\\bThe Sketch Book\\b|\\bThe Alhambra\\b|\\bThe Golden Bowl\\b|\\bDaisy Miller\\b|\\bDeath of the Lion\\b|\\bRoderick Hudson\\b|\\bThe Ambassadors\\b|\\bThe American\\b|\\bThe Aspern Papers\\b|\\bThe Europeans\\b|\\bThe Figure in the Carpet\\b|\\bThe Lesson of the Master\\b|\\bThe Portrait ofA Lady\\b|\\bThe Sacred Fount\\b|\\bThe Turn of the Screw\\b|\\bWashington Square\\b|\\bA Portrait of the Artist as a Young Man\\b|\\bDubliners\\b|\\bUlysses\\b|\\bAutobiography\\b|\\bLetters\\b|\\bKim\\b|\\bPuck ofPook's Hill\\b|\\bRewards and Fairies\\b|\\bThe Jungle Book\\b|\\bThe Blue Fairy Book\\b|\\bThe Red Fairy Book\\b|\\bThe Violet Fairy Book\\b|\\bThe Yellow Fairy Book\\b|\\bLady Chatterlay's Lover\\b|\\bWomen in Love\\b|\\bSons and Lovers\\b|\\bBurning Daylight\\b|\\bJohn Barleycorn\\b|\\bLove of Life and Other Stories\\b|\\bMartin Eden\\b|\\bThe Call of the Wild\\b|\\bThe Iron Heel\\b|\\bThe People of the Abyss\\b|\\bThe Sea-Wolf\\b|\\bThe Son of the Wolf\\b|\\bThe White Fang\\b|\\bBenito Cereno\\b|\\bBilly Budd\\b|\\bMoby Dick\\b|\\bTypee\\b|\\bParadise Lost\\b|\\bParadise Regained\\b|\\bA Dream ofJohn Ball and A King's Lesson\\b|\\bNews from Nowhere\\b|\\bBlix\\b|\\bMcTeague\\b|\\bMoran of the Lady Letty\\b|\\bThe Octopus- A Story ofCalifornia\\b|\\bUncle Tom's Cabin\\b|\\bGulliver's Travels\\b|\\bThe Battle of the Books and Others\\b|\\bFrankenstein\\b|\\bBride ofLammermoor\\b|\\bIvanhoe\\b|\\bRob Roy\\b|\\bThe Heat ofMid-Lothian\\b|\\bThe Antiquary\\b|\\bThe Talisman- A Tale of the Crusaders\\b|\\bWaverley\\b|\\bA Lover's Complaint\\b|\\bA Midsummer Night's Dream\\b|\\bAll's Well That Ends Well\\b|\\bAs You Like It\\b|\\bCymbeline\\b|\\bKing John\\b|\\bKing Richard II\\b|\\bKing Richard III\\b|\\bLove's Labour's Lost\\b|\\bMeasure for Measure\\b|\\bMuch Ado About Nothing\\b|\\bPericles, Prince ofType\\b|\\bThe Comedy ofErrors\\b|\\bKing Henry the Fourth\\b|\\bKing Henry the Fifth\\b|\\bKing Henry the Sixth\\b|\\bKing Henry the Eighth\\b|\\bThe History ofTroilus and Cressida\\b|\\bThe Life ofTimon ofAthens\\b|\\bThe Merchant ofVenice\\b|\\bThe Merry Wives ofWindsor\\b|\\bThe Passionate Pilgrim\\b|\\bThe Phoenix and the Turtle\\b|\\bThe Rape ofLucrece\\b|\\bThe Taming of the Shrew\\b|\\bThe Tempest\\b|\\bThe Tragedy ofAntony and Cleopatra\\b|\\bThe Tragedy ofCoriolanus\\b|\\bThe Tragedy ofHamlet, Prince ofDenmark\\b|\\bThe Tragedy ofJulius Caesar\\b|\\bThe Tragedy ofKing Lear\\b|\\bThe Tragedy ofMacbeth\\b|\\bThe Tragedy of Othello, Moor ofVenice\\b|\\bThe Tragedy ofRomeo and Juliet\\b|\\bThe Tragedy ofTitus Andronicus\\b|\\bThe Two Gentlemen ofVerona\\b|\\bThe Winter's Tale\\b|\\bTwelfth Night\\b|\\bVenus and Adonis\\b|\\bThe Sonnets\\b|\\bPrince Otto\\b|\\bTreasure Island\\b|\\bAcross the Plains\\b|\\bAn Inland Voyage\\b|\\bIn the South Seas\\b|\\bKidnapped\\b|\\bMaster ofBallantrae\\b|\\bThe Black Arrow\\b|\\bThe Silverado Squatters\\b|\\bThe Strange Case ofDr Jekyll and Mr Hyde\\b|\\bTravels with a Donkey in the Cevennes\\b|\\bWeir ofHermiston\\b|\\bWalden\\b|\\bA Connecticut Yankee in King Arthur's Court\\b|\\bA Tramp Abroad\\b|\\bLife on the Mississippi\\b|\\bMark Twain's Speeches\\b|\\bThe $30,000 Bequest\\b|\\bThe Adventures ofHuckleberry Finn\\b|\\bThe Adventures ofTom Sawyer\\b|\\bTom Sawyer Abroad\\b|\\bTom Sawyer Detective\\b|\\bThe Innocents Abroad\\b|\\bThe Prince and the Pauper\\b|\\bThe Tragedy ofPudd'nhead Wilson\\b|\\bWhat is Man\\b|\\bThe Rose and the Ring\\b|\\bVanity Fair\\b|\\bBunner Sisters\\b|\\bHouse ofMirth\\b|\\bSummer\\b|\\bThe Age ofInnocence\\b|\\bThe Reef\\b|\\bAnn Veronica\\b|\\bThe Door in the Wall and Other Stories\\b|\\bThe First Man in the Moon\\b|\\bThe Invisible Man\\b|\\bThe Island ofDoctor Moreau\\b|\\bThe Time Machine\\b|\\bThe War in the Air\\b|\\bThe War of the Worlds\\b|\\bTono Bungay\\b|\\bA House ofPomegranates\\b|\\bA Woman ofNo Importance\\b|\\bAn Ideal Husband\\b|\\bIntentions\\b|\\bLady Windermere's Fan\\b|\\bLord Arthur Savile's Crime and Other Stories\\b|\\bThe Happy Prince and Other Tales\\b|\\bThe Importance ofBeing Earnest\\b|\\bThe Picture ofDorian Gray\\b|\\bWealth of Nations\\b|\\bThe Principles ofEconomics\\b|\\bOn the Principles ofPolitical Economy and Taxation\\b|\\bThe National System ofPolitical Economy\\b|\\bThe Principles ofPolitical Economy\\b|\\bThe Principles ofScientific Management\\b|\\bThe Iliad\\b|\\bThe Odyssey\\b|\\bAesop's Fables\\b|\\bThe Arabian Nights\\b|\\bThe Decameron\\b|\\bThe Adventures ofPinocchio\\b|\\bFairy Tales\\b|\\bA Journey to the Centre of the Earth\\b|\\bAround the World in 80 Days\\b|\\bFrom the Earth to the Moon\\b|\\bTwenty Thousand Leagues Under the Sea\\b|\\bDon Quixote\\b|\\bLes Miserables\\b|\\bThe Confessions ofJean-Jacques Rousseau\\b|\\bCrime and Punishment\\b|\\bNotes from the Underground\\b|\\bThe Brothers Karamazov\\b|\\bWar and Peace\\b|\\bAnna Karenina\\b|\\bA Confession\\b|\\bThe Death ofIvan Ilych\\b|\\bThe Forged Coupon and Other Stories\\b|\\bThe Kreutzer Sonata and Other Stories\\b|\\bTwenty-Three Tales\\b|\\bDon Juan\\b|\\bFaust\\b|\\bDramatic Lyrics\\b|\\bPoems of John Keats\\b|\\bLeaves ofGrass\\b|\\bPoems ofWilliam B Yeats\\b");
	public static final Pattern Magazine = Pattern
			.compile("\\bTIME\\b|\\bNational Geographic\\b|\\bFORTUNE\\b|\\bVOGUE\\b|\\bThe Economist\\b|\\bPLAYBOY\\b|\\bVANITY FAIR\\b|\\bNewsweek\\b|\\bELLE\\b|\\bWIRED\\b|\\bFHM\\b|\\bTHE FACE\\b|\\bROLLINGSTONE\\b|\\bThe New Yorker\\b|\\bForbes\\b|\\bPEOPLE\\b|\\bi-D\\b|\\bBusiness Week\\b|\\bWallpaper\\b|\\bBrutus Casa\\b|\\bDER SPIEGEL\\b|\\bPREMIERE\\b|\\bLIFE\\b|\\bStern\\b|\\bPARIS MATCH\\b|\\bGQ\\b|\\bCOLORS\\b|\\bVisionaire\\b|\\bEsquire\\b|\\bTime Out\\b|\\bDETAILS\\b|\\bNumero\\b|\\bConde Nast Traveler\\b|\\bSports Illustrated\\b|\\bCosmopolitan\\b|\\bReader's Digest\\b|\\bMAXIM\\b|\\bOK!\\b|\\bU\\.S\\.News\\b|\\bThe New York Times Magazine\\b|\\bMarie Claire\\b|\\bFrance Football\\b|\\bEntertainment Weekly\\b|\\bESPN\\b|\\bInstyle\\b|\\bStuff\\b|\\bW\\b|\\bDazed & Confused\\b|\\bFigaro madame\\b|\\bL'UOMO Vogue\\b|\\bThe Atlantic\\b|\\bFar Eastern Economic Review\\b|\\bScience\\b|\\bO The Oprah Magazine\\b|\\bSlate\\b|\\bMartha Stewart Living?\\b|\\bGEO\\b|\\bMETROPOLIS\\b|\\bNYLON\\b|\\bThe Weekly Standard\\b|\\bBRUTUS\\b|\\bFour Four Two\\b|\\bPENTHHOUSE\\b|\\bThe Nation\\b|\\bHELLO!\\b|\\bHarper's Bazaar\\b|\\bTV Guide\\b|\\bBUSINESS\\b|\\bThe New York Times Book Review\\b|\\bPurple\\b|\\bmoney\\b|\\bSPOON\\b|\\bFocus\\b|\\bseventeen\\b|\\bMother Jones\\b|\\bHARPER'S Magazine\\b|\\bNonnoMens Nonno\\b|\\bARENA\\b|\\bNew York\\b|\\bMaclean's\\b|\\ballure\\b|\\bRay\\b|\\bOutside\\b|\\bQ\\b|\\bI\\.D\\b|\\bGas Book\\b|\\bDutch\\b|\\bTitle\\b|\\bCAR\\b|\\bNew Republic\\b|\\bV Magazine\\b|\\bNo\\.ABCD\\.\\.\\.\\.Z\\b|\\bPOP\\b|\\bVillage Voice\\b|\\bHouse & Garden\\b|\\bUS Weekly\\b|\\bStockholm New\\b|\\bIDN\\b|\\bRe-Magazine\\b");
	public static final Pattern Newspaper = Pattern
			.compile("\\bNew York Times\\b|\\bThe Times\\b|\\bThe Financial Times\\b|\\bThe Guardian\\b|\\bThe Economist\\b|\\bDaily Mirror\\b|\\bThe Sun\\b|\\bWashington Post\\b|\\bLos Angeles Times\\b|\\bInternational Herald Tribune\\b|\\bThe Daily Telegraph\\b");
	public static final Pattern Building = Pattern
			.compile("\\bGreat Wall\\b|\\bForbidden City\\b|\\bTaj Mahal\\b|\\bAngkor Wat\\b|\\bBorobudur\\b|\\bSentosa\\b|\\bBabylon\\b|\\bMosque of St\\b|\\bAswan High Dam\\b|\\bNairobi National Park\\b|\\bPyramids\\b|\\bSydney Opera House\\b|\\bAyers Rock\\b|\\bNotre Dame de Paris\\b|\\bEffiel Tower\\b|\\bArch of Triumph\\b|\\bElysee Palace\\b|\\bLouvre\\b|\\bKolner Dom\\b|\\bLeaning Tower of Pisa\\b|\\bColosseum\\b|\\bParthenon\\b|\\bRed Square\\b|\\bBig Ben\\b|\\bBuckingham Palace\\b|\\bHyde Park\\b|\\bLondon Tower Bridge\\b|\\bWestminster Abbey\\b|\\bMonte Carlo\\b|\\bStatue of Liberty\\b|\\bTimes Square\\b|\\bThe White House\\b|\\bWorld Trade Center\\b|\\bCentral Park\\b|\\bAcapulco\\b|\\bCuzco\\b");

	public static Properties EnglishName = new Properties();
	{
		InputStream is = Rule.class
				.getResourceAsStream("name.properties");
		try {
			EnglishName.load(is);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	protected StrBuilder sb = new StrBuilder(1024);
	protected int priority;
	protected String ruleName;
	protected RuleManager ruleManager;

	public void setRuleManager(RuleManager ruleManager) {
		this.ruleManager = ruleManager;
	}

	public String getRuleName() {
		return this.ruleName == null ? this.getClass().getSimpleName()
				: ruleName;
	}

	public void setRuleName(String ruleName) {
		this.ruleName = ruleName;
	}

	public int getPriority() {
		return priority;
	}

	public void setPriority(int priority) {
		this.priority = priority;
	}

	public String introduction() throws Exception {
		return "";
	}

	public abstract Object applicable(Object... objects) throws Exception;

	public abstract Object deviseRightSolution(Object... objects)
			throws Exception;

	public abstract Object examine(Object... objects) throws Exception;

	// public abstract Object whereIsWrong(Object... objects) throws Exception;

	public abstract Object whyItsWrong(Object... objects) throws Exception;
}
